/*
 * Created on 21-ago-2004
 *
 */
package guru.merlin.core;


/**
 * @author cobach
 *
 */
public interface EnvelopeHandler {
    
    /**
     * Efectua el procesamiento de un objeto Envelope. Este mtodo va de la mano con el 
     * mtodo commitHandEnvelope.
     * @param envelope
     * @throws CantHandException
     * @return referencia al Envelope recibido. 
     */
     Object handEnvelope(Envelope envelope) throws CantHandException;
     
    /**
     * @param EnvelopeReference
     * @throws CantHandException
     */
    void retrieveEnvelope(Object EnvelopeReference) throws CantHandException;
     
     /**
      * Hace persistente el procesamientos de un objeto Envelope.  
      * @param EnvelopeReference. Referencia al Envelope que fue procesado.
      * @throws CantHandException
      */
    void commitHandEnvelope (Object EnvelopeReference) throws CantHandException;
}
